package com.hsmw.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hsmw.common.base.BaseModel;
import com.hsmw.domain.vo.DriverUserVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author tjy
 * @since 2021-07-15
 */
@Data
@ApiModel(value = "HsmwReport对象", description = "")
public class HsmwReport extends BaseModel {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "上报类型 2：车辆维修，3：事故 4:安全作业 5.轮胎 6.泵管")
    private String reportType;

    @ApiModelProperty(value = "订单状态 1：接单中，2：未接单")
    private String orderStatus;

    @ApiModelProperty(value = "默认 1：事假")
    private String leaveType;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "请假开始时间")
    private LocalDate startTime;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "请假结束时间")
    private LocalDate endTime;

    @ApiModelProperty(value = "原因描述")
    private String describes;


    @ApiModelProperty(value = "紧急程度 0：紧急，1不紧急")
    private String urgency;

    @ApiModelProperty(value = "审核状态 默认为0：待审批，1：已审批 2审核拒绝")
    private String examineType;

    @ApiModelProperty("上报人名称")
    private String reportName;

    @ApiModelProperty("上报人电话")
    private String reportPhone;

    @ApiModelProperty("userId")
    private String createUser;

    @ApiModelProperty(value = "图片列表")
    @TableField(exist = false)
    private List<HashMap> picList;

    @ApiModelProperty("请假时长")
    private String day;

    @ApiModelProperty(value = "图片列表")
    @TableField(exist = false)
    private List<HsmwPicture> hsmwPictures;

    @ApiModelProperty("司机id")
    private String driId;

    @ApiModelProperty(value = "车辆id")
    private String vehicleId;

    @ApiModelProperty(value = "车辆牌照")
    @TableField(exist = false)
    private String vehicleNum;

    @ApiModelProperty(value = "开始时间")
    @TableField(exist = false)
    private String startDateFormatterTime;

    @ApiModelProperty(value = "结束时间")
    @TableField(exist = false)
    private String endDateFormatterTime;

    @ApiModelProperty(value = "提前工作标志")
    private String advanceFlag;

    @ApiModelProperty(value = "上报记录新增")
    @TableField(exist = false)
    private HsmwReportRecord hsmwReportRecord;

    @ApiModelProperty(value = "上报记录")
    @TableField(exist = false)
    private List<HsmwReportRecord> hsmwReportRecords;

    @ApiModelProperty(value = "请假拒绝原因")
    private String remark;

    @ApiModelProperty(value = "是否存在订单")
    @TableField(exist = false)
    private String ifOrder;


    @ApiModelProperty(value = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HHmm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HHmm")
    private LocalDateTime auditTime;


    @ApiModelProperty(value = "司机头像")
    @TableField(exist = false)
    private String myPicture;


    @ApiModelProperty(value = "标识")
    @TableField(exist = false)
    private String flag;

    @ApiModelProperty(value = "订单编号")
    private String orderId;


    @ApiModelProperty(value = "项目名称")
    private String itemName;

    @ApiModelProperty(value = "预计到达时间")
    private String reachTime;


    @ApiModelProperty(value = "施工位置")
    private String position;


    @ApiModelProperty(value = "租赁公司id")
    private String companyId;

    @ApiModelProperty(value = "司机投诉供应商")
    @TableField(exist = false)
    private HsmwDriverComplaints hsmwDriverComplaints;

    @ApiModelProperty(value = "司机是否与工长进行沟通")
    private String communicate;

    @ApiModelProperty(value = "子订单id")
    private String relationId;

    @ApiModelProperty(value = "语音备注")
    private String  audioRemark;

    @ApiModelProperty(value = " 车辆类型 ")
    @TableField(exist = false)
    private String vehicleType;


    @ApiModelProperty(value = " 经纬度 ")
    @TableField(exist = false)
    private String imeiNumLocate;

    @ApiModelProperty(value = " 地址 ")
    @TableField(exist = false)
    private String nameByGps;

    @ApiModelProperty(value = " 是否工作中 ")
    @TableField(exist = false)
    private String workStatus;

    @ApiModelProperty(value = " 司机信息 ")
    @TableField(exist = false)
    private List<DriverUserVO> driverUserVOS;
}
